import allure
from appium.webdriver.common.appiumby import AppiumBy

from base.wework_app import Wework


class AddressListPage(Wework):
    """
    通讯录页面
    """

    # 添加成员按钮
    _add_member_btn = (AppiumBy.XPATH, "//*[@text='添加成员']")
    # 成员名称
    _member_name = [AppiumBy.XPATH, "//*[@text='{}']"]
    # 我的客户按钮
    _my_custom_btn = (AppiumBy.XPATH, "//android.view.ViewGroup/*[@text='我的客户']")
    # 搜索按钮
    _search_btn = (AppiumBy.XPATH,
                   "//*[@text='山猪之家']/ancestor::android.widget.RelativeLayout[1]/android.widget.LinearLayout[3]/android.widget.RelativeLayout[1]/android.widget.TextView")

    @allure.step("点击添加成员按钮，跳转到添加成员页面")
    def goto_add_member_page(self):
        """
        跳转到添加成员页面
        :return: 添加成员 page
        """
        from page.add_member_page import AddMemberPage

        self.swipe_find(self._add_member_btn, max_num=10).click()

        return AddMemberPage(self.driver)

    @allure.step("点击成员名称，跳转到添加成员页面")
    def goto_member_info_page(self, name):
        """
        跳转到成员信息页面
        :param name: 成员名称
        :return: 成员信息 page
        """
        from page.member_info_page import MemberInfoPage

        # 先找到企业通讯录标题
        self.swipe_find(self._my_custom_btn, reserve=True)
        # 动态更改成员名称的定位
        self._member_name[1] = self._member_name[1].format(name)
        self.swipe_find(self._member_name, max_num=10).click()

        return MemberInfoPage(self.driver)

    @allure.step("点击搜索按钮，跳转到搜索页面")
    def goto_search_page(self):
        """
        跳转到搜索页面
        :return: 搜索 page
        """
        from page.search_page import SearchPage

        self.find_ele(self._search_btn).click()

        return SearchPage(self.driver)
